package com.home.common.utils.math;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

/**
 * Description: 获取随机数
 * Created by 王大宸 on 2020-10-18 0:12
 * Created with IntelliJ IDEA.
 */
public class MathRandomUtil {

    /***
     * 功能说明： 获取 num 以内的随机数
     *
     * @author 王大宸
     * @date 2020/10/18 0:13
     * @param num 目标数据
     * @return int
     */
    public static int random(Integer num) {
        return (int) (Math.random() * num);
    }

    /***
     * 功能说明：获取指定范围内的一组不重复的随机数
     *
     * @author 王大宸
     * @date 2020/12/18 16:28
     * @param maxNum   最大数值
     * @param number   返回个数
     * @return java.util.List<java.lang.Integer>
     */
    public static List<Integer> randomList(Integer maxNum, Integer number) {
        Random rand = new Random();
        boolean[] bool = new boolean[maxNum];
        int randInt = 0;
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < number; i++) {
            do {
                randInt = rand.nextInt(maxNum);
            } while (bool[randInt]);
            bool[randInt] = true;
            list.add(randInt);
        }
        return list;
    }

}
